1
Gestion de la précision et prévention des dépassements
AI018Lesson 3
00:00

Dans NumPy, Gestion de la précision consiste à sélectionner délibérément les profondeurs de bits afin d'équilibrer l'efficacité mémoire et la correction numérique. Contrairement aux entiers Python standards qui ont une précision arbitraire, NumPy utilise des types C de taille fixe (par exemple, int32_t, uint64_t).

1. La hiérarchie des types

Les types dtypes de NumPy définissent l'encombrement mémoire. Bien que np.int_() fournisse une taille dépendante de la plateforme, les systèmes robustes s'appuient sur Alias de taille fixe (Tableau : Page 34) pour garantir une cohérence sur toutes les architectures.

  • Entiers :int8_t, int16_t, int32_t, int64_t.
  • Non signés :uint8_t à uint64_t.
  • Pointeurs :intptr_t, uintptr_t.

2. Outils d'inspection

Avant d'exécuter des opérations arithmétiques, utilisez np.iinfo() et np.finfo() pour inspecter les limites. Par exemple, 1 + np.finfo(np.longdouble).eps identifie l'epsilon machine — le seuil au-delà duquel les additions n'ont plus d'effet sur la valeur.

Dépassement d'entierLogique d'enroulementMax + 1 — MinVirgule flottanteLogique de saturationDépasser le maximum — inf

3. Mécanismes des dépassements

NumPy ne lève pas d'erreurs en cas de dépassement ; il échoue silencieusement. En utilisant np.power(100, 8, dtype=np.int32) résulte en troncature, tandis que float64 passe à inf. Utilisez np.issubdtype(d, np.floating) pour valider les catégories avant les opérations.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>